home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK2.toast / Development Kits (Disc 2) / QuickTime™ IC SDK 1.01 / Interfaces&Libraries / PublicInterfaces / QTICPublicPanel.h < prev   
Encoding:
C/C++ Source or Header  |  1997-05-23  |  12.0 KB  |  267 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QTICPublicPanel.h
  3.  
  4.      Contains:    QuickTime Image Capture interfaces
  5.  
  6.      Version:    Technology:    
  7.                  Release:    QTIC 1.0 interfaces
  8.  
  9.      Copyright:    © 1996-1997 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@apple.com
  15.  
  16. */
  17.  
  18. #ifndef __QTICPUBLICPANEL__
  19. #define __QTICPUBLICPANEL__
  20.  
  21. #ifndef ___QTIC___
  22. #include "QTIC.h"
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif
  28.  
  29. #if GENERATINGPOWERPC
  30. #pragma options align=mac68k
  31. #endif
  32.  
  33. #ifdef __CFM68K__
  34. #pragma lib_export on
  35. #endif
  36.  
  37. /* ------------------------------------------------------------------------- */
  38.  
  39. //    Function prototypes.
  40.  
  41. pascal ComponentResult QTICP_Open(ComponentInstance self);
  42. pascal ComponentResult QTICP_Close(Handle storage,ComponentInstance self);
  43. pascal ComponentResult QTICP_CanDo(short selector);
  44. pascal ComponentResult QTICP_Target(Handle storage, ComponentInstance self);
  45.  
  46. //    Panel Routines.
  47. pascal ComponentResult QTICP_AboutBox(Handle storage);
  48. pascal ComponentResult QTICP_Initialize(Handle storage, Handle settings);
  49. pascal ComponentResult QTICP_SetControls(Handle storage, QTICControls controls);
  50. pascal ComponentResult QTICP_GetSettings(Handle storage, Handle *settings);
  51. pascal ComponentResult QTICP_SetSettings(Handle storage, Handle settings);
  52. pascal ComponentResult QTICP_CanUseCamera(Handle storage, QTICControls controls);
  53.  
  54. //    Panel Event Handling Routines.
  55. pascal ComponentResult QTICP_IsPanel(Handle storage, WindowRef theWindow);
  56. pascal ComponentResult QTICP_CloseWindow(Handle storage, WindowRef theWindow);
  57. pascal ComponentResult QTICP_Event(Handle storage, EventRecord *theEvent);
  58. pascal ComponentResult QTICP_Idle(Handle storage);
  59. pascal ComponentResult QTICP_InContentDouble(Handle storage, WindowRef theWindow, EventRecord *theEvent);
  60. pascal ComponentResult QTICP_InContent(Handle storage, WindowRef theWindow, EventRecord *theEvent);
  61. pascal ComponentResult QTICP_GetGrowSize(Handle storage, WindowRef theWindow, Rect *size);
  62. pascal ComponentResult QTICP_GrowWindow(Handle storage, WindowRef theWindow, Rect *old, Rect *new);
  63. pascal ComponentResult QTICP_ZoomWindow(Handle storage, WindowRef theWindow, short windowPart);
  64. pascal ComponentResult QTICP_DoKeyDown(Handle storage, WindowRef theWindow, EventRecord *theEvent);
  65. pascal ComponentResult QTICP_Draw(Handle storage, WindowRef theWindow);
  66. pascal ComponentResult QTICP_UpdateCustomMenu(Handle storage, WindowRef theWindow, MenuHandle mHandle);
  67. pascal ComponentResult QTICP_DoCustomMenu(Handle storage, WindowRef theWindow, MenuHandle mHandle, short selectedItem);
  68. pascal ComponentResult QTICP_GetMenuName(Handle storage, WindowRef theWindow, unsigned char *name);
  69. pascal ComponentResult QTICP_FinishCustomMenu(Handle storage, WindowRef theWindow, MenuHandle mHandle);
  70. pascal ComponentResult QTICP_Activate(Handle storage, WindowRef theWindow);
  71. pascal ComponentResult QTICP_Deactivate(Handle storage, WindowRef theWindow);
  72.  
  73. /* ------------------------------------------------------------------------- */
  74.  
  75. //    These are the ProcInfos we need to call dispatch to our component functions.
  76. enum {
  77.     uppMainProcInfo = kPascalStackBased 
  78.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult))) 
  79.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ComponentParameters *))) 
  80.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle))),
  81.     uppQTICP_OpenProcInfo = kPascalStackBased
  82.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  83.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(ComponentInstance))),
  84.     uppQTICP_CloseProcInfo = kPascalStackBased
  85.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  86.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  87.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ComponentInstance))),
  88.     uppQTICP_CanDoProcInfo = kPascalStackBased
  89.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  90.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short))),
  91.     uppQTICP_TargetProcInfo = kPascalStackBased
  92.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  93.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  94.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ComponentInstance))),
  95.  
  96.     uppQTICP_AboutBoxProcInfo = kPascalStackBased
  97.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  98.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle))),
  99.     uppQTICP_InitializeProcInfo = kPascalStackBased
  100.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  101.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  102.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle))),
  103.     uppQTICP_SetControlsProcInfo = kPascalStackBased
  104.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  105.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  106.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(QTICControls))),
  107.     uppQTICP_GetSettingsProcInfo = kPascalStackBased
  108.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  109.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  110.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle *))),
  111.     uppQTICP_SetSettingsProcInfo = kPascalStackBased
  112.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  113.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  114.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Handle))),
  115.     uppQTICP_CanUseCameraProcInfo = kPascalStackBased
  116.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  117.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  118.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(QTICControls))),
  119.  
  120.     uppQTICP_IsPanelProcInfo = kPascalStackBased
  121.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  122.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  123.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef))),
  124.     uppQTICP_CloseWindowProcInfo = kPascalStackBased
  125.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  126.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  127.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef))),
  128.     uppQTICP_EventProcInfo = kPascalStackBased
  129.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  130.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  131.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(EventRecord *))),
  132.     uppQTICP_IdleProcInfo = kPascalStackBased
  133.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  134.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle))),
  135.     uppQTICP_InContentDoubleProcInfo = kPascalStackBased
  136.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  137.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  138.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  139.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(EventRecord *))),
  140.     uppQTICP_InContentProcInfo = kPascalStackBased
  141.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  142.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  143.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  144.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(EventRecord *))),
  145.     uppQTICP_GetGrowSizeProcInfo = kPascalStackBased
  146.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  147.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  148.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  149.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect *))),
  150.     uppQTICP_GrowWindowProcInfo = kPascalStackBased
  151.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  152.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  153.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  154.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(Rect *)))
  155.         | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Rect *))),
  156.     uppQTICP_ZoomWindowProcInfo = kPascalStackBased
  157.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  158.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  159.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  160.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short))),
  161.     uppQTICP_DoKeyDownProcInfo = kPascalStackBased
  162.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  163.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  164.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  165.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(EventRecord *))),
  166.     uppQTICP_DrawProcInfo = kPascalStackBased
  167.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  168.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  169.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef))),
  170.     uppQTICP_UpdateCustomMenuProcInfo = kPascalStackBased
  171.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  172.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  173.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  174.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MenuHandle))),
  175.     uppQTICP_DoCustomMenuProcInfo = kPascalStackBased
  176.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  177.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  178.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  179.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MenuHandle)))
  180.         | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short))),
  181.     uppQTICP_GetMenuNameProcInfo = kPascalStackBased
  182.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  183.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  184.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  185.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(unsigned char *))),
  186.     uppQTICP_FinishCustomMenuProcInfo = kPascalStackBased
  187.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  188.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  189.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  190.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MenuHandle))),
  191.     uppQTICP_ActivateProcInfo = kPascalStackBased
  192.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  193.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  194.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef))),
  195.     uppQTICP_DeactivateProcInfo = kPascalStackBased
  196.         | RESULT_SIZE(SIZE_CODE(sizeof(ComponentResult)))
  197.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  198.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(WindowRef)))
  199. };
  200.  
  201. /* ------------------------------------------------------------------------- */
  202.  
  203. //    Component helper stuff.
  204. #ifdef powerc
  205.  
  206. //    PowerPC compile only.
  207. #define CallComponentFunctionWithStorageUniv(storage, params, funcName) \
  208.     CallComponentFunctionWithStorage(storage, params, &funcName##RD)
  209. #define CallComponentFunctionUniv(params, funcName) \
  210.     CallComponentFunction(params, &funcName##RD)
  211. #define INSTANTIATE_ROUTINE_DESCRIPTOR(funcName) RoutineDescriptor funcName##RD = \
  212.     BUILD_ROUTINE_DESCRIPTOR (upp##funcName##ProcInfo, funcName)
  213.  
  214. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Open);
  215. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Close);
  216. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_CanDo);
  217. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Target);
  218.  
  219. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_AboutBox);
  220. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Initialize);
  221. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_SetControls);
  222. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_GetSettings);
  223. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_SetSettings);
  224. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_CanUseCamera);
  225.  
  226. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_IsPanel);
  227. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_CloseWindow);
  228. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Event);
  229. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Idle);
  230. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_InContentDouble);
  231. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_InContent);
  232. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_GetGrowSize);
  233. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_GrowWindow);
  234. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_ZoomWindow);
  235. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_DoKeyDown);
  236. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Draw);
  237. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_UpdateCustomMenu);
  238. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_DoCustomMenu);
  239. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_GetMenuName);
  240. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_FinishCustomMenu);
  241. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Activate);
  242. INSTANTIATE_ROUTINE_DESCRIPTOR(QTICP_Deactivate);
  243.  
  244. #else
  245.  
  246. //    68K compile only.
  247. #define CallComponentFunctionWithStorageUniv(storage, params, funcName) \
  248.     CallComponentFunctionWithStorage(storage, params, (ComponentFunctionUPP)funcName)
  249. #define CallComponentFunctionUniv(params, funcName) \
  250.     CallComponentFunction(params, (ComponentFunctionUPP)funcName)
  251. #endif
  252.  
  253. /* ------------------------------------------------------------------------- */
  254.  
  255. #ifdef __CFM68K__
  256. #pragma lib_export off
  257. #endif
  258.  
  259. #if GENERATINGPOWERPC
  260. #pragma options align=reset
  261. #endif
  262.  
  263. #ifdef __cplusplus
  264. }
  265. #endif
  266.  
  267. #endif /* __QTICPUBLICPANEL__ */